]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
12 months agobrightnessManager: Propagate any attempted brightness change
Sebastian Wick [Thu, 30 Oct 2025 10:43:19 +0000 (11:43 +0100)]
brightnessManager: Propagate any attempted brightness change

The BrightnessScale was trying to be smart by not notifying changes of
its value when an action on it (stepUp, stepDown, cycleUp, set value)
resulted in no change.

It turns out that users do want to see an OSD even when their action
resulted in no change.

Always notify about attempted changes instead.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8770
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3941>

12 months agologinManager: Use systemd session auto object to get session ID
Alessandro Bono [Thu, 30 Oct 2025 10:47:17 +0000 (11:47 +0100)]
loginManager: Use systemd session auto object to get session ID

Relying on the Display property is buggy when the gdm user spawns more than
one gnome-shell instance.
```
$ loginctl
SESSION  UID USER   SEAT  LEADER CLASS         TTY   IDLE SINCE
     11   42 gdm    -     11778  manager-early -     no   -
    c20   42 gdm    seat0 34313  greeter       tty1  yes  17h ago
    c21   42 gdm    -     34938  greeter       -     no   -
    c22   42 gdm    -     35693  greeter       -     no   -
```

From the logs:
```
$ journalctl -b | grep "Will monitor"
[...]
Oct 29 15:14:59 gnome-shell[34961]: Will monitor session c20
Oct 29 15:22:57 gnome-shell[35716]: Will monitor session c20
Oct 29 15:22:58 gnome-shell[35716]: Will monitor session c20
```

Use the systemd session auto object for getting the session id. We can't return
directly the session proxy created from it because it won't emit signals. From
the documentation[1]:
```
Signals are only emitted on objects referencing a specific session ID not on the
"/org/freedesktop/login1/session/self" or "/org/freedesktop/login1/session/auto"
convenience objects, as they can only be dereferenced relative to a method caller.
```

[1] https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3942>

12 months agologinManager: Improve log
Alessandro Bono [Thu, 30 Oct 2025 10:47:12 +0000 (11:47 +0100)]
loginManager: Improve log

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3942>

12 months agoosk-layouts: Drop comma key from de-extended and at-extended layouts
Sebastian Keller [Wed, 29 Oct 2025 10:09:02 +0000 (11:09 +0100)]
osk-layouts: Drop comma key from de-extended and at-extended layouts

The row containing that key was one key too long, which was causing
misalignment. The comma key is not shown in the us-extended layout
either and is available via long press on the dot key or via ?123,
making it the best candidate to remove from these layouts.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8756
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3940>

12 months agoRevert "keyboardManager: Update layout index before keymap"
Sebastian Keller [Tue, 28 Oct 2025 23:09:50 +0000 (00:09 +0100)]
Revert "keyboardManager: Update layout index before keymap"

This reverts commit f643915b32fbc116ec09572276af645300589764.

This is not needed anymore now that e8d73262 has been reverted and it
was causing problems in X11 sessions, such as when switching from the
4th layout to the 3rd using the keyboard layout menu.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3939>

12 months agoRevert "status/keyboard: Track ::layout-layout-group-changed for changes"
Sebastian Keller [Tue, 28 Oct 2025 22:22:26 +0000 (23:22 +0100)]
Revert "status/keyboard: Track ::layout-layout-group-changed for changes"

This reverts commit e8d73262c73246205e8f7887d99aeb2356cfa89e.

The commit was causing freezes when changing layouts in some situations
and not all of these were adressed by f643915b, such as when switching
from the 3rd to the 4th layout using a xkb shortcut in the X11 session
with 4 layouts.

It was also breaking the order of switching layouts using modifier-only
xkb shortcuts to switch to the next group, which it caused to advance
multiple groups because of the shortcut being handled via both
_modifiersSwitcher() and _layoutGroupChanged().

Further it was possible for _layoutGroupChanged() to trigger an error
due to the locale layout added by _buildGroupStrings() at the end of the
xkb layout list being accessible via the xkb shortcuts. That layout was
not present in _inputSources, leading to "is" being undefined.

Reopens: https://gitlab.gnome.org/GNOME/mutter/-/issues/3926
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8738
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3930
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3939>

12 months agotools: Symlink node_modules in project root
Florian Müllner [Tue, 21 Oct 2025 18:12:59 +0000 (20:12 +0200)]
tools: Symlink node_modules in project root

NPM assumes quite strongly that it manages the project as a
whole and its package/lock files are located in the project
root.

While we somehow managed to keep the npm tooling in a subfolder,
this comes at the cost of breaking imports of additional modules.

This will become relevant when we update eslint to a supported
version, as we want to keep using the `junit` formatter in CI,
which has now been split out into a separate module.

So bite the bullet and make the node_modules folder available in
the project root.

On the plus side, having the node_modules folder in the project
root allows language servers in IDEs/editors to pick it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3929>

12 months agotools: Pin git node modules
Florian Müllner [Thu, 23 Oct 2025 12:06:08 +0000 (14:06 +0200)]
tools: Pin git node modules

Both changes in the config (like new/changes rules) and the eslint wrapper
(like updating to eslint 9.x) could require changes on the shell side, and
therefore require conscious update rather than randomly breaking the CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3929>

12 months agokeyboardManager: Update layout index before keymap
Carlos Garnacho [Thu, 23 Oct 2025 18:56:10 +0000 (20:56 +0200)]
keyboardManager: Update layout index before keymap

Unfortunately, layouts and keymaps are not considered atomic data
even though they are closely related. Furthermore, these are async
operations that are not immediate to apply, and each of them result
in a plethora of updates down in Mutter (layout group being a subset
of keymaps).

Doing things in the current order, these updates do result in a
feedback loop, since the layout index is not changed altogether with
the keymap, but the keymap update is also seen as a layout change.

Even though it still does result in unnecessary intermediate updates,
changing the layout index first avoids the feedback loop, since it
will already match with the expectations after the ClutterKeymap is
updated.

This fixes deadlocked shell when using xkb options that trigger layout
changes through the ISO_Next_Group key emission, when the group change
also triggered a keymap update (e.g. moving to a different group
per KeyboardManager.MAX_LAYOUTS_PER_GROUP limits).

This does not fix being able to switch between all layouts, when
there is more than one group. This will be fixed in later commits.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8738
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3930>

12 months agokeyboard: Don't move window when it got unmanaged during shift animation
Sebastian Keller [Sat, 25 Oct 2025 11:03:55 +0000 (13:03 +0200)]
keyboard: Don't move window when it got unmanaged during shift animation

When a window with a text-entry at the bottom that had triggered the OSK
and was shifted up to avoid overlapping the OSK is closed right after
losing keyboard focus, this results in a crash. The focus loss triggers
the animation to move the window actor back into its original position,
which moves the underlying window when finished. That however will fail
when the window has been unmanaged and some of the underlying resources
have already been destroyed while the animation was playing.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8752
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3933>

12 months agopanel: Fix addExternalIndicator() JSDoc comment
ClarityStorm [Mon, 27 Oct 2025 23:12:44 +0000 (23:12 +0000)]
panel: Fix addExternalIndicator() JSDoc comment

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3937>

12 months agoci: Upgrade ci-fairy
Florian Müllner [Mon, 20 Oct 2025 12:48:18 +0000 (14:48 +0200)]
ci: Upgrade ci-fairy

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3924>

12 months agoci: Drop check-merge-request job
Jonas Ådahl [Sat, 25 Oct 2025 09:08:35 +0000 (11:08 +0200)]
ci: Drop check-merge-request job

The job is broken due to permission changes in GitLab, and it seems what
is checked for is now the default, making the job less useful, thus drop
it.

Related: https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/81
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3932>

12 months agosystemActions: Don't log error when cancelled
Florian Müllner [Tue, 21 Oct 2025 22:57:26 +0000 (00:57 +0200)]
systemActions: Don't log error when cancelled

If the logout/reboot/shutdown actions are available, we expect them
to succeed. Unfortunately that changed in the light of systemd
inhibitors (that we don't know about in the shell, and that prevent
those actions now).

While it would be good to fix the underlying issue, we can at least
improve the error reporting in that case and not log the error when
the operation was cancelled: We don't know the underlying reason,
unlike gnome-session which should have logged a more helpful message.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8749
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3927>

12 months agojs: Use logErrorUnlessCancelled() helper
Florian Müllner [Wed, 22 Oct 2025 01:30:41 +0000 (03:30 +0200)]
js: Use logErrorUnlessCancelled() helper

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3927>

12 months agoerrorUtils: Add logErrorUnlessCancelled() helper
Florian Müllner [Wed, 22 Oct 2025 00:59:20 +0000 (02:59 +0200)]
errorUtils: Add logErrorUnlessCancelled() helper

It is quite common to handle errors by ignoring them in case of
CANCELLED, and otherwise log them via logError().

Add a small helper method that implements that behavior, including
if the original error is wrapped in a Gio.DBusError.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3927>

12 months agolint: Enable 'prefer-const' rule
Florian Müllner [Fri, 24 Oct 2025 11:39:03 +0000 (13:39 +0200)]
lint: Enable 'prefer-const' rule

Now that all code conforms with the rule, we can enforce it to make
sure we stick to it with new code.

Relax the rule for destructuring, so we don't have to jump through
hoops to avoid "mixed" assignments.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>

12 months agojs: Use const declarations where possible
Florian Müllner [Fri, 24 Oct 2025 11:39:37 +0000 (13:39 +0200)]
js: Use const declarations where possible

It is useful to indicate clearly that a value is read-only, and
we have already been doing so for new code for a long time. But
in order to actually enforce this, we have to adjust all existing
code.

Luckily the change is trivial enough to do (thanks to `eslint --fix`),
so do it now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>

12 months agokeyboardManager: Simplify loop
Florian Müllner [Fri, 24 Oct 2025 13:14:16 +0000 (15:14 +0200)]
keyboardManager: Simplify loop

We can iterate over ids directly instead of using an index.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>

12 months agokeyboardManager: Minor style fix
Florian Müllner [Fri, 24 Oct 2025 12:06:30 +0000 (14:06 +0200)]
keyboardManager: Minor style fix

Local variables are already limited by their scope, so there is
no need to mark them as private with the '_' prefix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>

12 months agokeyboardManager: Fix typo in comment
Florian Müllner [Fri, 24 Oct 2025 13:37:16 +0000 (15:37 +0200)]
keyboardManager: Fix typo in comment

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>

12 months agoci: Add executable bit to malcontent-client
Ignacy Kuchciński [Tue, 21 Oct 2025 14:14:40 +0000 (16:14 +0200)]
ci: Add executable bit to malcontent-client

For some reason, installing malcontent with buildah as a proxy, results
in the malcontent-client binary missing the execute permission, even
though manually invoking the install-meson-project.sh script results in
the correct permissions being set.

Work around this by manually setting the correct permissions on the
malcontent-client binary.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3918>

12 months agonetworkAgent: Do not remove child watch source
Michael Catanzaro [Mon, 20 Oct 2025 21:26:34 +0000 (16:26 -0500)]
networkAgent: Do not remove child watch source

The child watch source is the only thing that reaps the child process.
We cannot remove it until it fires or the child will remain a zombie.
So, just leave the source attached. Trying to remove it does not seem
easy, and I don't see any need; we expect the child process to exit
quickly, so this doesn't seem harmful.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7083
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3926>

12 months agoosk-layout: Add extended layouts for German and German (Austria)
Leonidas Adaktylos [Sun, 19 Oct 2025 17:58:28 +0000 (19:58 +0200)]
osk-layout: Add extended layouts for German and German (Austria)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3923>

12 months agologinDialog: Sort session list by name
Balló György [Fri, 17 Oct 2025 17:42:21 +0000 (19:42 +0200)]
loginDialog: Sort session list by name

Instead of sorting the available sessions by their ID, sort them by their
name. This ensures that the list is sorted based on the system locale.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3920>

12 months agoFixed "compoment" typo in the gnome-shell README.md
Leonidas Adaktylos [Mon, 20 Oct 2025 18:09:35 +0000 (20:09 +0200)]
Fixed "compoment" typo in the gnome-shell README.md

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3925>

12 months agodnd: Don't try to connect to transition when animations are disabled
Sebastian Keller [Sun, 19 Oct 2025 16:47:31 +0000 (18:47 +0200)]
dnd: Don't try to connect to transition when animations are disabled

When animations are disabled, the ease has finished before the
get_transition() call, causing the latter to return null, which will
result in an error message when connected to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3922>

12 months agostatus/network: Update indicator icon on connectivity changes
Antoine Lassagne [Fri, 10 Oct 2025 12:55:40 +0000 (14:55 +0200)]
status/network: Update indicator icon on connectivity changes

When there is no active main connection or it uses a device type we do
not handle, the indicator icon and its visibility depend on the global
connectivity.

However we currently don't update the icon on connectivity changes,
with the result that we sometimes show the fallback connection icon
when the network is in fact disconnected.

To fix this, update the icon whenever the (global) connectivity changes.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7357
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8549
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3910>

12 months agoUpdate Greek translation
Efstathios Iosifidis [Sat, 18 Oct 2025 19:45:55 +0000 (19:45 +0000)]
Update Greek translation

(cherry picked from commit 67c509bcee7d1ce659aec765c64e895f214e789c)

12 months agoUpdate Dutch translation
Nathan Follens [Fri, 17 Oct 2025 22:26:00 +0000 (22:26 +0000)]
Update Dutch translation

(cherry picked from commit 420c442e8db4476ec3a5b7e264862cc8c127946a)

12 months agomessageList: Fall back to generic policy if media message has no app
Sebastian Keller [Fri, 17 Oct 2025 18:05:53 +0000 (20:05 +0200)]
messageList: Fall back to generic policy if media message has no app

That way the notification at least still follows the global settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8740
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3921>

12 months agoUpdate Slovenian translation
Martin [Fri, 17 Oct 2025 13:17:53 +0000 (13:17 +0000)]
Update Slovenian translation

12 months agoci: Reinstall gdk-pixbuf2 package
Florian Müllner [Thu, 16 Oct 2025 20:48:21 +0000 (22:48 +0200)]
ci: Reinstall gdk-pixbuf2 package

The mutter image contains a custom gdk-pixbuf build without the
glycin loader, in order to unbreak running installed tests in CI.

The downside is that we end up with no SVG loader. For the toolbox
image we don't care about installed tests, but we very much care about
working icons.

So reinstall the distro gdk-pixbuf package to bring back the glycin
loader (and thus SVG support).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8735
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3919>

12 months agoci: Bump mutter image
Florian Müllner [Thu, 16 Oct 2025 20:42:38 +0000 (22:42 +0200)]
ci: Bump mutter image

While the latest bump isn't strictly required, it is still good practice
to keep the image in sync.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3919>

12 months agoi18n: Add context to "Power mode" title string
Davide Ferracin [Tue, 7 Oct 2025 12:45:45 +0000 (14:45 +0200)]
i18n: Add context to "Power mode" title string

The "Power mode" string in the quick settings menu appears both in the
title of the button and as the menu header that opens when clicking on
such button.
Currently they are translated together, but---at least in
Italian---the standard translation, "Modalità energia", is too long to
fit in the button and is very often truncated to "Modalità…" (aka
"Mode", in English) from which is not clear what the menu is about.
We would use "Energia" for the button title, but at the same time it
would be nice to have the full "Modalità energia" translation in the
menu header, where there is more space available.

For this reason I propose to add contexts to the two "Power mode"
strings, so that the string can be translated in different ways
depending on its position.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3903>

12 months agobuild: Bump mutter API version
Florian Müllner [Tue, 14 Oct 2025 21:55:22 +0000 (23:55 +0200)]
build: Bump mutter API version

We have branched, so bump the API version for GNOME 50.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3916>

12 months agoBump version to 49.1
Florian Müllner [Tue, 14 Oct 2025 20:49:10 +0000 (22:49 +0200)]
Bump version to 49.1

Update NEWS.

12 months agomessageList: Make media messages follow notification policy
Florian Müllner [Wed, 1 Oct 2025 18:19:14 +0000 (20:19 +0200)]
messageList: Make media messages follow notification policy

Unlike regular notifications, media messages are shown unconditionally
for any active MPRIS player. In the past that was uncontroversial, but
now that media messages are shown on the lock screen as well, there is
a privacy concern.

To address this, make media messages follow the notification policy
of the corresponding app (if specified) or the general notification
settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8600
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3896>

12 months agogdm: Improve some accessibility icons
Jakub Steiner [Fri, 10 Oct 2025 10:46:56 +0000 (12:46 +0200)]
gdm: Improve some accessibility icons

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8716

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3909>

12 months agomessageTray: Never close a notification banner that is about to show
Marco Trevisan (Treviño) [Wed, 8 Oct 2025 03:37:57 +0000 (05:37 +0200)]
messageTray: Never close a notification banner that is about to show

If a new notification is pushed (or the same is updated) in a very short
time GNOME shell may only show the last notification (or none).

This is because since commit 2801d0bf a notification that is about to
show (so in SHOWING state) may be considered expired, given that the
notification timeout won't be set until the show animation has
completed.

Thus, only consider the notification as expired when the notification is
in the shown state, but not in the showing one.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6529
Fixes: 2801d0bfe3 ("messageTray: Close SHOWING banner when its notification is destroyed")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3905>

12 months agoUpdate Friulian translation
Fabio Tomat [Tue, 14 Oct 2025 15:25:55 +0000 (15:25 +0000)]
Update Friulian translation

12 months agoosk-layouts: Do not use U+25CC in in+bolnagri output strings
Mike FABIAN [Fri, 10 Oct 2025 10:05:14 +0000 (12:05 +0200)]
osk-layouts: Do not use U+25CC in in+bolnagri output strings

These should be just in the key labels.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/8719
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3911>

12 months agonotificationDaemon: Do not send activation event multiple times
Marco Trevisan (Treviño) [Tue, 7 Oct 2025 18:08:39 +0000 (20:08 +0200)]
notificationDaemon: Do not send activation event multiple times

When a FDO notification is updated we reuse the previous instance,
however we do not care about disconnecting the default activation signal
and thus we may end up emitting the same multiple times, even in the
case the updated notification has no action at all.

So track the signal connections.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3904>

12 months agoUpdate French translation
Jean-Marc TISSIERES [Fri, 10 Oct 2025 10:25:52 +0000 (10:25 +0000)]
Update French translation

12 months agoscreenshot: Make screenshot tooltips label actors for their widgets
Lukáš Tyrychtr [Thu, 9 Oct 2025 14:27:55 +0000 (16:27 +0200)]
screenshot: Make screenshot tooltips label actors for their widgets

This ensures that the buttons have a label from their tooltip if we do not
have another label actor already (like from the icon label buttons).

Because no button using a toolltip in this UI has a label on its own,
this is not checked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3908>

12 months agonotificationDaemon: Always set the FDO notification closed reason
Marco Trevisan (Treviño) [Thu, 9 Oct 2025 11:56:27 +0000 (13:56 +0200)]
notificationDaemon: Always set the FDO notification closed reason

The undefined closed reason according to the API is 4, but we were
potentially returning an unsupported value (0).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3907>

12 months agodialog: Do not ellipsize and wrap the list title
Marco Trevisan (Treviño) [Fri, 3 Oct 2025 02:52:03 +0000 (04:52 +0200)]
dialog: Do not ellipsize and wrap the list title

The dialog list title section may contain a long string, so we should
not cut it.

This is currently happening in 49 (at least using the Italian locale).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3898>

13 months agostatus/keyboard: Track ::layout-layout-group-changed for changes
Carlos Garnacho [Tue, 30 Sep 2025 14:09:47 +0000 (16:09 +0200)]
status/keyboard: Track ::layout-layout-group-changed for changes

This may happen under the hood without UI interaction through modifiers
expressed in xkb-options to switch to specific layouts. Make this
actually have an effect in the UI bits, and update the selected layout
if these changes happen without further GNOME Shell involvement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3895>

13 months agoUpdate Bulgarian translation
twlvnn kraftwerk [Wed, 8 Oct 2025 12:37:12 +0000 (12:37 +0000)]
Update Bulgarian translation

13 months agoUpdate Catalan translation
Jordi Mas [Mon, 6 Oct 2025 17:57:17 +0000 (19:57 +0200)]
Update Catalan translation

13 months agotheme: Uniform the style of the dialog warnings
Marco Trevisan (Treviño) [Fri, 3 Oct 2025 02:37:49 +0000 (04:37 +0200)]
theme: Uniform the style of the dialog warnings

The end session dialog is now using a new style for the warning messages
but this style is not re-used by other dialogs that have messages with a
similar role.

So be consistent, and use same style for all the dialogs that are
showing a warning or an info message, and in particular
 - Keyring dialog error messages
 - Polkit dialogs error and info messages
 - Conflicting dialog warning message

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3897>

13 months agoUpdate Italian translation
Davide Ferracin [Mon, 6 Oct 2025 03:07:18 +0000 (03:07 +0000)]
Update Italian translation

13 months agost/theme-context: Warn instead of crashing on unsupported accent colors
Daniel van Vugt [Fri, 26 Sep 2025 06:36:41 +0000 (14:36 +0800)]
st/theme-context: Warn instead of crashing on unsupported accent colors

For example, Ubuntu's "brown". This is patched into gnome-shell for Ubuntu
but if you forget the patch then it's not worthy of a crash. Just pick a
colour and issue a warning.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3892>

13 months agopanelMenu: Remove invalid last argument to PopupMenu constructor
SimonMaracine [Sun, 28 Sep 2025 17:56:36 +0000 (20:56 +0300)]
panelMenu: Remove invalid last argument to PopupMenu constructor

Fixes: 4debedb275 ("Application Menu: add support for showing GApplication actions")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3894>

13 months agonotificationDamon: Always send the activation token
Marco Trevisan (Treviño) [Fri, 26 Sep 2025 04:29:16 +0000 (06:29 +0200)]
notificationDamon: Always send the activation token

In case of FDO notifications, we may receive a notification coming from
non-desktop-applications (e.g. gsd does that), but in any case when
activating an action we should always provide back the activation-token.

So send the startup notification ID in any case, even if the appId is
unset (in fact get_startup_notify_id() uses a nullable parameter for a
reason since GNOME/glib@6210708f).

In wayland this more than enough, while in X11 we could have used the
gnome-shell desktop file as fallback, but that's gone for good now!

Fixes: bb73bf5
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3891>

13 months agoUpdate Catalan translation
Jordi Mas [Thu, 25 Sep 2025 08:29:52 +0000 (10:29 +0200)]
Update Catalan translation

13 months agodata: Do not bundle org.freedesktop.Application interface
Florian Müllner [Wed, 24 Sep 2025 18:43:03 +0000 (20:43 +0200)]
data: Do not bundle org.freedesktop.Application interface

It is only needed at build time for gdbus-codegen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3889>

13 months agodata: Remove unused D-Bus interface
Florian Müllner [Wed, 24 Sep 2025 18:43:03 +0000 (20:43 +0200)]
data: Remove unused D-Bus interface

The shell no longer uses the net.hadess.SensorProxy service directly,
but only via mutter API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3889>

13 months agooverviewControls: Ensure ws thumbnails are expanded before fading in
Noam Raz [Wed, 24 Sep 2025 08:49:43 +0000 (11:49 +0300)]
overviewControls: Ensure ws thumbnails are expanded before fading in

The current logic in `_updateThumbnailsBox` updates the expand fraction
only after the fade animation completes, rendering the fade-in
transition broken: the thumbnails fade in, but they have a height of 0
until after the animation, when they jarringly "pop" into place. This
abrupt transition is observable when exiting search in the overview with
multiple active workspaces.

Instead, split up the logic a bit to make sure the thumbnails always
appear fully-expanded during the animation: when animating in, the
`expand-fraction` is set _before_ the animation starts, and when
animating out it is set after.

This logic should make all workspace thumbnail state transitions behave
correctly:

- The thumbnails still expand/collapse smoothly when `should-show`
  changes because `_updateThumbnailsBox` is called only when that
  transition completes.

- Transitions into/out of search just fade the thumbnails because they
  are always expanded during the animation.

- https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7668 is avoided
  because `expand-fraction` is still set to 1 by `_updateThumbnailsBox`
  when revealing the thumbnails.

- The thumbnails still have an `expand-fraction` of 0 when hidden,
  carrying over the fixes from 9bf550da8 ("overviewControls: Set
  expandFraction for ws thumbnails to 0 when hidden").

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7985
Fixes: c576f82bd ("overviewControls: Make sure thumbnails expandFraction is bound to visibility")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3888>

13 months agogdm/authPrompt: Fix key focus handling on choice list
Marco Trevisan (Treviño) [Fri, 22 Aug 2025 13:08:23 +0000 (15:08 +0200)]
gdm/authPrompt: Fix key focus handling on choice list

When a choice list widget is prompted in GDM we call updateSensitivity()
but this does not act on the currently visible authentication widget but
rather on the text entry all the times.

And this causes that when a choice list is shown we always set the key
focus to the (hidden) text entry.

This implies that when the list is finally shown, moving the arrow keys
leads makes the entry context menu to be shown instead of being able to
navigate through the entries.

So, make updateSensitivity use the currently visible authorization
widget instead and use it to control the sensitivity of the choice list

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3849>

13 months agoslider: Use the sprite of the touch event, not the pointer
Daniel van Vugt [Tue, 23 Sep 2025 06:12:56 +0000 (14:12 +0800)]
slider: Use the sprite of the touch event, not the pointer

startDragging() starts with:

  const sprite = backend.get_sprite(global.stage, event);
  this._sprite = sprite;

but then vfunc_touch_event() would only compare this._sprite to:

  sprite = backend.get_pointer_sprite(global.stage);

which never matched. And so _endDragging() was never called and
the grab was never dismissed, effectively freezing the shell.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8660
Fixes: c206ec693 ("slider: Use Clutter.Sprite for pointing focus accounting")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3887>

13 months agoUpdate Portuguese translation
Hugo Carvalho [Mon, 22 Sep 2025 14:20:23 +0000 (14:20 +0000)]
Update Portuguese translation

13 months agoUpdate Turkish translation
Sabri Ünal [Sat, 20 Sep 2025 15:33:17 +0000 (15:33 +0000)]
Update Turkish translation

13 months agoUpdate Serbian (Latin) translation
Милош Поповић [Thu, 18 Sep 2025 07:36:48 +0000 (07:36 +0000)]
Update Serbian (Latin) translation

13 months agoUpdate Serbian translation
Милош Поповић [Thu, 18 Sep 2025 07:35:36 +0000 (07:35 +0000)]
Update Serbian translation

13 months agoUpdate Uighur translation
Abduqadir Abliz [Wed, 17 Sep 2025 17:07:04 +0000 (17:07 +0000)]
Update Uighur translation

13 months agoUpdate Occitan translation
Quentin PAGÈS [Tue, 16 Sep 2025 17:40:21 +0000 (17:40 +0000)]
Update Occitan translation

13 months agoUpdate Kabyle translation
BoF ButterflyOfFire [Tue, 16 Sep 2025 17:19:00 +0000 (17:19 +0000)]
Update Kabyle translation

13 months agoUpdate Occitan translation
Quentin PAGÈS [Mon, 15 Sep 2025 18:29:25 +0000 (18:29 +0000)]
Update Occitan translation

13 months agoBump version to 49.0
Florian Müllner [Sat, 13 Sep 2025 21:29:32 +0000 (23:29 +0200)]
Bump version to 49.0

Update NEWS.

13 months agobuild: Depend on GLib 2.86.0
Marco Trevisan (Treviño) [Mon, 1 Sep 2025 02:05:23 +0000 (04:05 +0200)]
build: Depend on GLib 2.86.0

As per previous change we now rely on a GLib version in which GioUnix
DesktopAppInfo implementation provides all the methods, so let's bump
the glib (actually gio) dependency for that.

As we need to be sure that the shell's typelib is rebuilt against newer
Gio, or updating GLib before than the shell would break us.

See: https://gitlab.gnome.org/GNOME/glib/-/issues/3776#note_2545887
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3860>

13 months agoenvironment: Drop DesktopAppIcon missing methods workaround
Marco Trevisan (Treviño) [Sun, 31 Aug 2025 00:58:29 +0000 (02:58 +0200)]
environment: Drop DesktopAppIcon missing methods workaround

This will be fixed in GLib 2.85.5 so there's no need to ship a
workaround for 49

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3860>

13 months agoci: Bump mutter image
Florian Müllner [Mon, 15 Sep 2025 01:04:26 +0000 (03:04 +0200)]
ci: Bump mutter image

Pull in glib 2.86.0, so that we can update our dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3884>

13 months agoci: Fix building toolbox with latest malcontent
Ignacy Kuchciński [Fri, 12 Sep 2025 11:19:51 +0000 (13:19 +0200)]
ci: Fix building toolbox with latest malcontent

While introducing latest malcontent in the toolbox, mistakenly wrong
path to install-meson-project.sh was used. Correct this by using the
proper path, after copying the script there.

Moreover, disable building documentation in malcontent subproject
libgsystemservice, so that we don't have to install more dependencies.

Fixes: b7992b80 ("ci: Include latest malcontent in the toolbox")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3873>

13 months agoci: Test toolbox build when changing build script
Florian Müllner [Fri, 12 Sep 2025 12:10:11 +0000 (14:10 +0200)]
ci: Test toolbox build when changing build script

The build-toolbox job only runs for main and stable branches, so
we currently only know whether modifications to the build-toolbox
script actually work once they a merged.

To catch errors up-front, do test builds of the toolbox image
when a merge request modifies the build script.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3875>

13 months agoci: Split out template for build-toolbox job
Florian Müllner [Fri, 12 Sep 2025 11:54:04 +0000 (13:54 +0200)]
ci: Split out template for build-toolbox job

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3875>

13 months agoUpdate Esperanto translation
Kristjan SCHMIDT [Sun, 14 Sep 2025 07:14:58 +0000 (07:14 +0000)]
Update Esperanto translation

13 months agoUpdate Romanian translation
Antonio Marin [Sat, 13 Sep 2025 16:43:40 +0000 (16:43 +0000)]
Update Romanian translation

13 months agomessageTray: Fix race condition causing stuck notification banners
everyx [Sat, 13 Sep 2025 04:01:17 +0000 (12:01 +0800)]
messageTray: Fix race condition causing stuck notification banners

A race condition can occur where a notification banner gets stuck on screen
and never disappears.

This happens when a new notification needs to be shown while an old one
is in the middle of its hiding animation. The process to show the new
notification calls `remove_all_transitions()`, which forcefully stops
the hiding animation of the old one.

The cleanup logic, which destroys the old banner actor, was located in
the `onComplete` handler of the animation. Since the animation was
interrupted and not completed, this handler was never called, leaving a
"zombie" banner on screen.

To fix this, the call to the cleanup function is moved from the
`onComplete` handler to an `onStopped` handler. This handler is
guaranteed to be called whenever an animation stops, regardless of
whether it finished successfully or was interrupted. This ensures the
banner is always cleaned up correctly.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6006
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3861>

13 months agopointerA11yTimeout: Protect against destroyed PieTimer actor
Carlos Garnacho [Fri, 12 Sep 2025 13:28:09 +0000 (15:28 +0200)]
pointerA11yTimeout: Protect against destroyed PieTimer actor

This trigger an exception if the PieTimer destroys itself before the
ClutterSeat::ptr-a11y-timeout-stopped signal triggers. It's unlikely
to happen now with the fixed arguments, but still makes sense for
correctness.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3877>

13 months agopointerA11yTimeout: Adapt to API changes in Mutter
Carlos Garnacho [Fri, 12 Sep 2025 13:22:31 +0000 (15:22 +0200)]
pointerA11yTimeout: Adapt to API changes in Mutter

https://gitlab.gnome.org/GNOME/mutter/-/commit/76166d61 did sneak
in an API change by removing the ClutterInputDevice arguments from
the ClutterSeat::ptr-a11y-timeout-* signals. Through a series of
astonishing coincidences, we don't use those arguments, so just
remove them. Since the rest of the arguments were shifted, this
fixes broken behavior of the PieTimer.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8654
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3877>

13 months agoci: Support "dry-run" builds of toolbox image
Florian Müllner [Fri, 12 Sep 2025 11:20:43 +0000 (13:20 +0200)]
ci: Support "dry-run" builds of toolbox image

This will allow testing the image build without actually updating
the image in the registry.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3876>

13 months agost/spinner-content: Disconnect timeline callbacks when the spinner is destroyed
Alessandro Astone [Fri, 12 Sep 2025 09:00:18 +0000 (11:00 +0200)]
st/spinner-content: Disconnect timeline callbacks when the spinner is destroyed

The ClutterFrameClock might still have active references on the ClutterTimeline
when the StSpinnerContent is freed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8651
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3872>

13 months agodocs: Replace references to --nested with --devkit
Florian Müllner [Thu, 11 Sep 2025 19:20:08 +0000 (21:20 +0200)]
docs: Replace references to --nested with --devkit

The --devkit option is strongly recommended over the old --nested
nowadays, not least because the latter option no longer exists by
default (as it is tied to the X11 backend).

Remove the section on global shortcuts and workaround for looking glass,
as Devkit supports inhibiting keyboard shortcuts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3871>

13 months agoci: Start with a fresh build dir to ensure test dependencies are correct
Marco Trevisan (Treviño) [Thu, 11 Sep 2025 11:33:42 +0000 (13:33 +0200)]
ci: Start with a fresh build dir to ensure test dependencies are correct

We want to ensure that meson test just works, without having to redo the
whole dependencies setup phase, so let's just start a new fresh build dir
and run tests there

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3869>

13 months agoextensions-app: Add test dependency on generated desktop file
Marco Trevisan (Treviño) [Thu, 11 Sep 2025 12:12:02 +0000 (14:12 +0200)]
extensions-app: Add test dependency on generated desktop file

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3869>

13 months agobuild: Define test dependencies
Marco Trevisan (Treviño) [Thu, 11 Sep 2025 11:29:31 +0000 (13:29 +0200)]
build: Define test dependencies

Ideally meson tests should just work without any pre-requisite build,
instead, we only need a configured build folder to work, but this does
not go as expected in gnome shell at the moment.

Since tests require generated files and compiled typelibs they don't
depend on, so just using `meson test -C build <test-name>` does not work
as expected.

So add test dependencies on test cases. We do not need to have per-test
dependencies right now since most of them share just the same
requirements, and this makes it easier to maintain

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3869>

13 months agobuild: Handle data as first subdir
Marco Trevisan (Treviño) [Thu, 11 Sep 2025 11:27:35 +0000 (13:27 +0200)]
build: Handle data as first subdir

We generate resources and files that may be required in next stages, so
lets do it as first thing

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3869>

13 months agoci: Include latest malcontent in the toolbox
Ignacy Kuchciński [Thu, 11 Sep 2025 13:37:06 +0000 (15:37 +0200)]
ci: Include latest malcontent in the toolbox

Currently the toolbox lacks malcontent >= 0.14.0, because that version
has not been released yet. However, we need it to test the upcoming
parental controls integration, so build it in the toolbox.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3841
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3870>

13 months agosearch: Make overview application search results grid RTL aware
Khalid Abu Shawarib [Mon, 25 Aug 2025 18:08:54 +0000 (21:08 +0300)]
search: Make overview application search results grid RTL aware

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3851>

13 months agosearch: Use a variable for tracking allocated width
Khalid Abu Shawarib [Tue, 2 Sep 2025 22:21:00 +0000 (01:21 +0300)]
search: Use a variable for tracking allocated width

Instead of the x coordinates of the allocation box.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3851>

13 months agobuild: Depend on gjs 1.85.90
Marco Trevisan (Treviño) [Tue, 12 Aug 2025 01:45:19 +0000 (03:45 +0200)]
build: Depend on gjs 1.85.90

While the actual version that was ported to libgirepository-2.0 was
1.85.2, we also rely on Gio wrappers that are part of gjs 1.85.90

See: https://gitlab.gnome.org/GNOME/gjs/-/blob/master/NEWS
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3836>

13 months agoci: Update mutter image
Florian Müllner [Thu, 11 Sep 2025 00:18:19 +0000 (02:18 +0200)]
ci: Update mutter image

The mutter image has been rebased to F43, pick it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3868>

13 months agopo/ml: Fix wrong calendar date formats
Pranav Jerry [Sun, 31 Aug 2025 14:09:02 +0000 (19:39 +0530)]
po/ml: Fix wrong calendar date formats

Closes: https://gitlab.gnome.org/Teams/Translation/ml/-/issues/1
Signed-off-by: Mohammed Sadiq <sadiq@sadiqpk.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3856>

13 months agoci: Include glib-networking in JS image
Florian Müllner [Wed, 10 Sep 2025 17:32:33 +0000 (19:32 +0200)]
ci: Include glib-networking in JS image

It provides TLS support, which is needed by the
`gnome-extensions upload` to publish an extension
archive to the website.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3867>

13 months agoci: Update js tooling image to F43
Florian Müllner [Wed, 10 Sep 2025 14:13:54 +0000 (16:13 +0200)]
ci: Update js tooling image to F43

F43 has been branched from rawhide and now contains the current .rc,
so it's a good moment to rebase the CI image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3866>

13 months agoUpdated Spanish translation
Daniel Mustieles [Wed, 10 Sep 2025 10:03:57 +0000 (12:03 +0200)]
Updated Spanish translation

13 months agobrightnessManager: Handle absence of brightness control in _sync
Sebastian Wick [Mon, 8 Sep 2025 11:19:21 +0000 (13:19 +0200)]
brightnessManager: Handle absence of brightness control in _sync

We already call _sync in response to dimming changes, which might happen
no matter if we actually do have control over the brightness.

Let's just embrace _sync getting called in any situation and handle that
state gracefully by simply returning early. If we re-gain control, _sync
will be called again and the updated state becomes active.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8648
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3864>

13 months agoUpdate Dutch translation
Nathan Follens [Tue, 9 Sep 2025 21:53:18 +0000 (21:53 +0000)]
Update Dutch translation

13 months agost/button: Fix toggle-button with keyboard input
Alessandro Astone [Tue, 9 Sep 2025 12:34:14 +0000 (14:34 +0200)]
st/button: Fix toggle-button with keyboard input

An St.Button with toggle-mode ON would not update the toggle state when
invoked via keyboard input.

Fixes: dd694bf1a ("st/button: Use ClutterClickGesture instead of own button-press tracking")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3865>